<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Compilador de Pascal :: PLg 2007-2008 </title>

<link href="style.css" rel="stylesheet" type="text/css" />
<!--[if IE 6]>
  <style>
  /*<![CDATA[*/
#sidebarbottom {background:url(images/sidebarbottom.jpg) no-repeat -3px;}
  /*]]>*/
  </style>
<![endif]-->
</head>

<body>
<div id="wrap">
<div id="topbar">
  
</div>
<div id="header">
<ul id="topmenu">
<li><a href="index.html">Inicio</a></li>
<li><a href="lexico.html">Léxico</a></li>
<li><a href="sintactico.html">Sintáctico</a></li>
<li><a href="tablaDeSimbolos.html">Tabla de símbolos</a></li>
<li><a href="gestorDeErrores.html">Gestor de errores</a></li>
<li class="active"><a href="casosDePrueba.html">Casos de Prueba</a></li>
</ul>
</div>
<div id="content">
<div id="mainpage">
<h2>Casos de prueba</h2><br><br>
<a id="plexico" name="plexico"></a>
<h3>Pruebas del analizador léxico</h3><br>
<p>A continuaci&oacute;n pasamos a mostrar las diferentes algunas de las diferentes pruebas que hemos realizado, incluyendo el programa de entrada con sintaxis Pascal, y su respectivas salidas de 
<i>tokens</i> generadas por el analizador l&eacute;xico.</p>
<p>En la presente documentaci&oacute;n detallaremos tan solo algunas pruebas de las que hemos realizado, siendo estas lo suficientemente representativas como para que el lector se haga una idea del resultado general de las pruebas.</p>
<p>Tanto estas, como otras pruebas se pueden encontrar en el proyecto, empezando desde el archivo con formato pruebaX.pas, donde X ser&aacute; un n&uacute;mero entre 1 y 12.</p>
<p>Para ejecutar una prueba, simplemente bastar&aacute; con ejecutar el proyecto. Antes de comenzar, aparecer&aacute; una caja de dialogo en la que se nos pedir&aacute; que insertemos la ruta del archivo que queremos procesar. Por defecto los hemos introducido en la carpeta Pruebas, as&iacute; que veremos que en la venta que aparece aparecer&aacute; /pruebas. Si queremos ejecutar, por ejemplo, el archivo Prueba1.pascal, tan solo tendremos que a&ntilde;adir al texto ya escrito &quot;/prueba/&quot; (que se refiere a la carpeta del proyecto en la que queremos buscar), el nombre del archivo. Al final tendr&iacute;amos que ves escrito en la caja de dialogo &quot;/prueba/Prueba1.pascal&quot;. Al darle a aceptar se ejecutar&aacute; el analizador l&eacute;xico para esta prueba.</p>
<p>Hemos intentado abarcar todos los casos posibles de palabras reservadas, as&iacute; como de errores l&eacute;xicos.</p>
<p>A continuaci&oacute;n pasamos a detallar diferentes entradas y salidas de pruebas, as&iacute; como una breve descripci&oacute;n del cometido de cada prueba:</p>

<h3>Prueba1.pas</h3>

<p>Se hacen diferentes usos de las cadenas y los caracteres.</p>


<h4>Entrada</h4>
<BR>
Program <BR>
var caracter : char; <BR>
var estrin : String; <BR>
begin <BR>
caracter := 'a'; <BR>
estrin := 'aa'; <BR>
[pipi] <BR>
(.pipi.) <BR>
(.pipi.) <BR>
<BR>
<h4>Salida</h4><BR>
Comentario reconocido: (*Este es para probar las cadenas y los caracteres, y los punteros de regalo*) <BR>
Token "program" -> PAL_RES [38] Linea: 1 Columna: 0 <BR>
Token "type" -> PAL_RES [37] Linea: 2 Columna: 2 <BR>
Token "puntero" -> IDENTIFICADOR [puntero] Linea: 2 Columna: 7 <BR>
Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 2 Columna: 15 <BR>
Token "^" -> PUNTERO [^] Linea: 2 Columna: 17 <BR>
Token "real" -> PAL_RES [1] Linea: 2 Columna: 18 <BR>
Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 2 Columna: 22 <BR> 
Token "var" -> PAL_RES [20] Linea: 3 Columna: 2 <BR> 
Token "caracter" -> IDENTIFICADOR [caracter] Linea: 3 Columna: 6 <BR>
Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 3 Columna: 15 <BR>
Token "char" -> PAL_RES [3] Linea: 3 Columna: 17 <BR>
Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 3 Columna: 21 <BR> 
Token "var" -> PAL_RES [20] Linea: 4 Columna: 2 <BR>
Token "estrin" -> IDENTIFICADOR [estrin] Linea: 4 Columna: 6 <BR>
Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 4 Columna: 13 <BR>
Token "String" -> PAL_RES [4] Linea: 4 Columna: 15 <BR>
Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 4 Columna: 21 <BR> 
Token "begin" -> PAL_RES [22] Linea: 5 Columna: 0 <BR>
Token "caracter" -> IDENTIFICADOR [caracter] Linea: 6 Columna: 1 <BR> 
Token ":=" -> OPER_ASIGNACION [] Linea: 6 Columna: 10 <BR>
Token "'a'" -> LITERAL_CARACTER [a] Linea: 6 Columna: 13 <BR>
Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 6 Columna: 16 <BR>
Token "estrin" -> IDENTIFICADOR [estrin] Linea: 7 Columna: 1 <BR>
Token ":=" -> OPER_ASIGNACION [] Linea: 7 Columna: 8 <BR>
Token "'aa'" -> LITERAL_CADENA [aa] Linea: 7 Columna: 11 <BR>
Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 7 Columna: 15 <BR>
Token "[" -> ABRECORCHETE [] Linea: 8 Columna: 1 <BR>
Token "pipi" -> IDENTIFICADOR [pipi] Linea: 8 Columna: 2 <BR> 
Token "]" -> CIERRACORCHETE [] Linea: 8 Columna: 6 <BR>
Token "(." -> ABRECORCHETE [] Linea: 9 Columna: 1 <BR>
Token "pipi" -> IDENTIFICADOR [pipi] Linea: 9 Columna: 3 <BR> 
Token ".)" -> CIERRACORCHETE [] Linea: 9 Columna: 7 <BR>
Token "END" -> PAL_RES [12] Linea: 10 Columna: 0 <BR>
Token "." -> SEPARADOR [PUNTO] Linea: 10 Columna: 3 <BR>
<BR>
<h3>Prueba2.pas</h3>
<p>Se utiliza un puntero, as&iacute; como la creaci&oacute;n de tipos definidos por el usuario</p>
<h4>Entrada</h4><BR>
Type<BR>
tDimension = 1..100; <BR>
eMatriz(f,c: tDimension) = array [1..f,1..c] of real;<BR>
tRango = record <BR>
f,c: tDimension value 1; <BR>
end; <BR>
tpMatriz = ^eMatriz; <BR>
<BR>
<h4>Salida</h4><BR>
Token "type" -> PAL_RES [37] Linea: 0 Columna: 0  <BR>
Token "tDimension" -> IDENTIFICADOR [tDimension] Linea: 1 Columna: 0 <BR>
Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 1 Columna: 11 <BR>
Token "1" -> LITERAL_ENTERO [1] Linea: 1 Columna: 13 <BR>
Token "." -> SEPARADOR [PUNTO] Linea: 1 Columna: 14 <BR>
Token "." -> SEPARADOR [PUNTO] Linea: 1 Columna: 15<BR>
Token "100" -> LITERAL_ENTERO [100] Linea: 1 Columna: 16 <BR>
Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 1 Columna: 19 <BR>
Token "eMatriz" -> IDENTIFICADOR [eMatriz] Linea: 2 Columna: 0 
Token "(" -> ABREPAREN [] Linea: 2 Columna: 7 <BR>
Token "f" -> IDENTIFICADOR [f] Linea: 2 Columna: 8 <BR>
Token "," -> SEPARADOR [COMA] Linea: 2 Columna: 9 <BR>
Token "c" -> IDENTIFICADOR [c] Linea: 2 Columna: 10 <BR>
Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 2 Columna: 11 <BR>
Token "tDimension" -> IDENTIFICADOR [tDimension] Linea: 2 Columna: 13<BR> 
Token ")" -> CIERRAPAREN [] Linea: 2 Columna: 23 <BR>
Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 2 Columna: 25<BR> 
Token "array" -> PAL_RES [7] Linea: 2 Columna: 27 <BR>
Token "[" -> ABRECORCHETE [] Linea: 2 Columna: 33 <BR>
Token "1" -> LITERAL_ENTERO [1] Linea: 2 Columna: 34 <BR>
Token "." -> SEPARADOR [PUNTO] Linea: 2 Columna: 35 <BR>
Token "." -> SEPARADOR [PUNTO] Linea: 2 Columna: 36 <BR>
Token "f" -> IDENTIFICADOR [f] Linea: 2 Columna: 37 <BR>
Token "," -> SEPARADOR [COMA] Linea: 2 Columna: 38 <BR>
Token "1" -> LITERAL_ENTERO [1] Linea: 2 Columna: 39 <BR>
Token "." -> SEPARADOR [PUNTO] Linea: 2 Columna: 40 <BR>
Token "." -> SEPARADOR [PUNTO] Linea: 2 Columna: 41 <BR>
Token "c" -> IDENTIFICADOR [c] Linea: 2 Columna: 42 <BR>
Token "]" -> CIERRACORCHETE [] Linea: 2 Columna: 43 <BR>
Token "of" -> PAL_RES [8] Linea: 2 Columna: 45 <BR>
Token "real" -> PAL_RES [1] Linea: 2 Columna: 48 <BR>
Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 2 Columna: 52 <BR> 
Token "tRango" -> IDENTIFICADOR [tRango] Linea: 3 Columna: 0 <BR>
Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 3 Columna: 7 <BR>
Token "record" -> PAL_RES [11] Linea: 3 Columna: 9 <BR>
Token "f" -> IDENTIFICADOR [f] Linea: 4 Columna: 0 <BR>
Token "," -> SEPARADOR [COMA] Linea: 4 Columna: 1 <BR>
Token "c" -> IDENTIFICADOR [c] Linea: 4 Columna: 2 <BR>
Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 4 Columna: 3 <BR>
Token "tDimension" -> IDENTIFICADOR [tDimension] Linea: 4 Columna: 5 <BR> 
Token "value" -> IDENTIFICADOR [value] Linea: 4 Columna: 16 <BR>
Token "1" -> LITERAL_ENTERO [1] Linea: 4 Columna: 22 <BR>
Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 4 Columna: 23 <BR>
Token "end" -> PAL_RES [12] Linea: 5 Columna: 0 Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 5 Columna: 3 <BR>
Token "tpMatriz" -> IDENTIFICADOR [tpMatriz] Linea: 6 Columna: 0 <BR> 
Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 6 Columna: 9 <BR>
Token "^" -> PUNTERO [^] Linea: 6 Columna: 11 <BR>
Token "eMatriz" -> IDENTIFICADOR [eMatriz] Linea: 6 Columna: 12 <BR>
Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 6 Columna: 19 <BR>
<BR>
<h3>Prueba3.pas</h3>
<p>Uso de las sentencias while, for e if. Uso de arrays.</p>
<p>Error por identificador mal construido: Podemos ver como hemos intentado declarar el identificador 1cont, pero como empieza por un digito, el l&eacute;xico no reconoce que pueda ser un identificador, por lo que separa en dos tokens. 1 literal entero y un identificador.</p>

<h4>Entrada</h4><BR>
program recorridos;<BR>
var cont1,cont2: integer;<BR>
vector= array [1..100] of real;<BR>
encontrado: boolean;<BR>
1cont: integer (* ejemplo de error por identificador mal construido *)<BR>
begin<BR>
cont1 := 1;<BR>
cont2 := 1;<BR>
(*recorrido con while*)<BR>
while ((cont1 <= 100) AND (encontrado = false)) do<BR>
begin<BR>
if (vector[cont1] == 1)<BR>
encontrado = true;<BR>
else<BR>
cont1 = cont1+1;<BR>
end;<BR>
(*recorrido con for*)<BR>
for cont2 := 1 to 100 do<BR>
Begin<BR>
if (vector[cont2] = 1) then<BR>
encontrado = true<BR>
end;<BR>
END.<BR>

<h4>Salida</h4>

<BR> Token "program" -> PAL_RES [38] Linea: 0 Columna: 0 <BR> Token "recorridos" -> IDENTIFICADOR [recorridos] Linea: 0 Columna: 8 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 0 Columna: 18 <BR> Token "var" -> PAL_RES [20] Linea: 2 Columna: 2 <BR> Token "cont1" -> IDENTIFICADOR [cont1] Linea: 2 Columna: 6 <BR> Token "," -> SEPARADOR [COMA] Linea: 2 Columna: 11 <BR> Token "cont2" -> IDENTIFICADOR [cont2] Linea: 2 Columna: 12 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 2 Columna: 17 <BR> Token "integer" -> PAL_RES [0] Linea: 2 Columna: 19 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 2 Columna: 26 <BR> Token "vector" -> IDENTIFICADOR [vector] Linea: 3 Columna: 2 <BR> Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 3 Columna: 8 <BR> Token "array" -> PAL_RES [7] Linea: 3 Columna: 10 <BR> Token "[" -> ABRECORCHETE [] Linea: 3 Columna: 16 <BR> Token "1" -> LITERAL_ENTERO [1] Linea: 3 Columna: 17 <BR> Token "." -> SEPARADOR [PUNTO] Linea: 3 Columna: 18 <BR> Token "." -> SEPARADOR [PUNTO] Linea: 3 Columna: 19 <BR> Token "100" -> LITERAL_ENTERO [100] Linea: 3 Columna: 20
<BR> Token "program" -> PAL_RES [38] Linea: 0 Columna: 0 <BR> Token "recorridos" -> IDENTIFICADOR [recorridos] Linea: 0 Columna: 8 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 0 Columna: 18 <BR> Token "var" -> PAL_RES [20] Linea: 2 Columna: 2 <BR> Token "cont1" -> IDENTIFICADOR [cont1] Linea: 2 Columna: 6 <BR> Token "," -> SEPARADOR [COMA] Linea: 2 Columna: 11 <BR> Token "cont2" -> IDENTIFICADOR [cont2] Linea: 2 Columna: 12 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 2 Columna: 17 <BR> Token "integer" -> PAL_RES [0] Linea: 2 Columna: 19 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 2 Columna: 26 <BR> Token "vector" -> IDENTIFICADOR [vector] Linea: 3 Columna: 2 <BR> Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 3 Columna: 8 <BR> Token "array" -> PAL_RES [7] Linea: 3 Columna: 10 <BR> Token "[" -> ABRECORCHETE [] Linea: 3 Columna: 16 <BR> Token "1" -> LITERAL_ENTERO [1] Linea: 3 Columna: 17 <BR> Token "." -> SEPARADOR [PUNTO] Linea: 3 Columna: 18 <BR> Token "." -> SEPARADOR [PUNTO] Linea: 3 Columna: 19 <BR> Token "100" -> LITERAL_ENTERO [100] Linea: 3 Columna: 20
<BR> Token ")" -> CIERRAPAREN [] Linea: 15 Columna: 25 <BR> Token "encontrado" -> IDENTIFICADOR [encontrado] Linea: 16 Columna: 5 <BR> Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 16 Columna: 16 <BR> Token "true" -> IDENTIFICADOR [true] Linea: 16 Columna: 18 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 16 Columna: 22 <BR> Token "else" -> PAL_RES [25] Linea: 17 Columna: 3 <BR> Token "cont1" -> IDENTIFICADOR [cont1] Linea: 18 Columna: 5 <BR> Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 18 Columna: 11 <BR> Token "cont1" -> IDENTIFICADOR [cont1] Linea: 18 Columna: 13 <BR> Token "+" -> OPER_ARIT [MAS] Linea: 18 Columna: 18 <BR> Token "1" -> LITERAL_ENTERO [1] Linea: 18 Columna: 19 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 18 Columna: 20 <BR> Token "end" -> PAL_RES [12] Linea: 19 Columna: 3 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 19 Columna: 6 Comentario reconocido: (*recorrido con for*) <BR> Token "for" -> PAL_RES [30] Linea: 23 Columna: 4 <BR> Token "cont2" -> IDENTIFICADOR [cont2] Linea: 23 Columna: 8 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 23 Columna: 14 <BR> Token "1" -> LITERAL_ENTERO [1] Linea: 23 Columna: 17 <BR> Token "to" -> PAL_RES [31] Linea: 23 Columna: 19 <BR> Token "100" -> LITERAL_ENTERO [100] Linea: 23 Columna: 22 <BR> Token "do" -> PAL_RES [27] Linea: 23 Columna: 26 <BR> Token "Begin" -> PAL_RES [22] Linea: 24 Columna: 5 <BR> Token "if" -> PAL_RES [23] Linea: 25 Columna: 7 <BR> Token "(" -> ABREPAREN [] Linea: 25 Columna: 10 <BR> Token "vector" -> IDENTIFICADOR [vector] Linea: 25 Columna: 11  Token "[" -> ABRECORCHETE [] Linea: 25 Columna: 17 <BR> Token "cont2" -> IDENTIFICADOR [cont2] Linea: 25 Columna: 18 <BR> Token "]" -> CIERRACORCHETE [] Linea: 25 Columna: 23 <BR> Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 25 Columna: 25 <BR> Token "1" -> LITERAL_ENTERO [1] Linea: 25 Columna: 27 <BR> Token ")" -> CIERRAPAREN [] Linea: 25 Columna: 28 <BR> Token "then" -> PAL_RES [24] Linea: 25 Columna: 30 <BR> Token "encontrado" -> IDENTIFICADOR [encontrado] Linea: 26 Columna: 8 <BR> Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 26 Columna: 19 <BR> Token "true" -> IDENTIFICADOR [true] Linea: 26 Columna: 21 <BR> Token "end" -> PAL_RES [12] Linea: 27 Columna: 7 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 27 Columna: 10 <BR> Token "END" -> PAL_RES [12] Linea: 29 Columna: 0 <BR> Token "." -> SEPARADOR [PUNTO] Linea: 29 Columna: 3
<BR>
<BR>
<h3>Prueba4.pas</h3>
<p>Declaraci&oacute;n de todo tipo de variables, as&iacute; como uso de los dos tipos de comentarios. Error de car&aacute;cter no v&aacute;lido (el gui&oacute;n bajo en la sentencia 
<i>y:= _ba</i>).</p>
<h4>Entrada</h4>
<BR>
{ Programa Ejemplo para Analisis L&eacute;xico. } <BR>
(* Segundo formato de comentarios *) <BR>
program <BR>
var i,j,k: integer; <BR>
var x,y: real; <BR>
var letra : char; <BR>
var cadena : String; <BR>
begin if (i > 10) then x := i + j * k / y; <BR>
else y := i + j * k / x; <BR>
x := 5.2E10; <BR>
y := _ba; <BR>
END.<BR>
<BR>

<h4>Salida</h4><BR>
Comentario reconocido: { Programa Ejemplo para Analisis Léxico. } <BR>
 Comentario reconocido: (* Segundo formato de comentarios *) <BR>
Token "program" -> PAL_RES [38] Linea: 2 Columna: 0 <BR> Token "var" -> PAL_RES [20] Linea: 3 Columna: 2 <BR> Token "i" -> IDENTIFICADOR [i] Linea: 3 Columna: 6 <BR> Token "," -> SEPARADOR [COMA] Linea: 3 Columna: 7 <BR> Token "j" -> IDENTIFICADOR [j] Linea: 3 Columna: 8 <BR> Token "," -> SEPARADOR [COMA] Linea: 3 Columna: 9 <BR> Token "k" -> IDENTIFICADOR [k] Linea: 3 Columna: 10 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 3 Columna: 11 <BR> Token "integer" -> PAL_RES [0] Linea: 3 Columna: 13 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 3 Columna: 20 <BR> Token "var" -> PAL_RES [20] Linea: 4 Columna: 2 <BR> Token "x" -> IDENTIFICADOR [x] Linea: 4 Columna: 6 <BR> Token "," -> SEPARADOR [COMA] Linea: 4 Columna: 7 <BR> Token "y" -> IDENTIFICADOR [y] Linea: 4 Columna: 8 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 4 Columna: 9 <BR> Token "real" -> PAL_RES [1] Linea: 4 Columna: 11 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 4 Columna: 15 <BR> Token "var" -> PAL_RES [20] Linea: 5 Columna: 2 <BR> Token "letra" -> IDENTIFICADOR [letra] Linea: 5 Columna: 6 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 5 Columna: 12 <BR> Token "char" -> PAL_RES [3] Linea: 5 Columna: 14 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 5 Columna: 18 <BR> Token "var" -> PAL_RES [20] Linea: 6 Columna: 2 <BR> Token "cadena" -> IDENTIFICADOR [cadena] Linea: 6 Columna: 6 Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 6 Columna: 13 <BR> Token "String" -> PAL_RES [4] Linea: 6 Columna: 15 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 6 Columna: 21 <BR> Token "begin" -> PAL_RES [22] Linea: 7 Columna: 0 <BR> Token "if" -> PAL_RES [23] Linea: 8 Columna: 3 <BR> Token "(" -> ABREPAREN [] Linea: 8 Columna: 6 <BR> Token "i" -> IDENTIFICADOR [i] Linea: 8 Columna: 7 <BR> Token ">" -> OPER_RELACIONAL [MAYOR] Linea: 8 Columna: 9
<BR> Token "10" -> LITERAL_ENTERO [10] Linea: 8 Columna: 11 <BR> Token ")" -> CIERRAPAREN [] Linea: 8 Columna: 13 <BR> Token "then" -> PAL_RES [24] Linea: 8 Columna: 15 <BR> Token "x" -> IDENTIFICADOR [x] Linea: 9 Columna: 6 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 9 Columna: 8 <BR> Token "i" -> IDENTIFICADOR [i] Linea: 9 Columna: 11 <BR> Token "+" -> OPER_ARIT [MAS] Linea: 9 Columna: 13 <BR> Token "j" -> IDENTIFICADOR [j] Linea: 9 Columna: 15 <BR> Token "*" -> OPER_ARIT [POR] Linea: 9 Columna: 17 <BR> Token "k" -> IDENTIFICADOR [k] Linea: 9 Columna: 19 <BR> Token "/" -> OPER_ARIT [DIVIDE] Linea: 9 Columna: 21 <BR> Token "y" -> IDENTIFICADOR [y] Linea: 9 Columna: 23 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 9 Columna: 24 <BR> Token "else" -> PAL_RES [25] Linea: 10 Columna: 3 <BR> Token "y" -> IDENTIFICADOR [y] Linea: 11 Columna: 6 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 11 Columna: 8 <BR> Token "i" -> IDENTIFICADOR [i] Linea: 11 Columna: 11 <BR> Token "+" -> OPER_ARIT [MAS] Linea: 11 Columna: 13 <BR> Token "j" -> IDENTIFICADOR [j] Linea: 11 Columna: 15 <BR> Token "*" -> OPER_ARIT [POR] Linea: 11 Columna: 17 <BR> Token "k" -> IDENTIFICADOR [k] Linea: 11 Columna: 19 <BR> Token "/" -> OPER_ARIT [DIVIDE] Linea: 11 Columna: 21 <BR> Token "x" -> IDENTIFICADOR [x] Linea: 11 Columna: 23 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 11 Columna: 24 <BR> Token "x" -> IDENTIFICADOR [x] Linea: 12 Columna: 3 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 12 Columna: 5 <BR> Token "5.2E10" -> LITERAL_REAL [5.2E10] Linea: 12 Columna: 8 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 12 Columna: 14 <BR> Token "END" -> PAL_RES [12] Linea: 13 Columna: 0 <BR> Token "." -> SEPARADOR [PUNTO] 

<Br> Linea: 13 Columna: 3 Linea: 13 Columna: 7. LEXICO CARACTER NO VALIDO <BR>
<BR>

<h3>Prueba5.pas</h3>

<p>Uso de los operadores booleanos y los relacionales</p>
<h4>Entrada</h4><BR>
(*operadores relacionales*) <BR>
program boolsYrelacionales; <BR>
var verdadero: boolean; <BR>
falso: boolean; <BR>
y: integer; <BR>
x: integer; <BR>
Begin <BR>
verdadero := verdadero OR falso; <BR>
verdadero := verdadero AND verdadero; <BR>
falso := falso AND verdadero; <BR>
falso := verdadero AND NOT verdadero; <BR> 
if (x<y) then x:= y; <BR>
if (x<=y) then x:= y; <BR>
if (x>y) then x:= y; <BR>
if (x>=y) then x:= y; <BR>
if (x=y) then x:= y; <BR>
End.<BR><BR>
<h4>Salida</h4>
<BR>

Comentario reconocido: (*operadores relacionales*) <BR>
Token "program" -> PAL_RES [38] Linea: 2 Columna: 0 <BR> Token "boolsYrelacionales" -> IDENTIFICADOR [boolsYrelacionales] Linea: 2 Columna: 8 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 2 Columna: 26 <BR> Token "var" -> PAL_RES [20] Linea: 4 Columna: 0 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 6 Columna: 0 <BR> Token ":" -> SEPA ADOR [DOSPUNTOS] Linea: 6 Columna: 9 <BR> Token "boolean" -> PAL_RES [2] Linea: 6 Columna: 11 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 6 Columna: 18 <BR> Token "falso" -> IDENTIFICADOR [falso] Linea: 7 Columna: 0 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 7 Columna: 5 <BR> Token "boolean" -> PAL_RES [2] Linea: 7 Columna: 7 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 7 Columna: 14 <BR> Token "y" -> IDENTIFICADOR [y] Linea: 9 Columna: 0 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 9 Columna: 1 <BR> Token "integer" -> PAL_RES [0] Linea: 9 Columna: 3 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 9 Columna: 10 <BR> Token "x" -> IDENTIFICADOR [x] Linea: 10 Columna: 0 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 10 Columna: 1 <BR> Token "integer" -> PAL_RES [0] Linea: 10 Columna: 3 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 10 Columna: 10 <BR> Token "begin" -> PAL_RES [22] Linea: 16 Columna: 0 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 18 Columna: 0 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 18 Columna: 10 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 18 Columna: 13 <BR> Token "OR" -> PAL_RES [18] Linea: 18 Columna: 23 <BR> Token "falso" -> IDENTIFICADOR [falso] Linea: 18 Columna: 26 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 18 Columna: 31 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 19 Columna: 0 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 19 Columna: 10 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 19 Columna: 13 <BR> Token "AND" -> PAL_RES [17] Linea: 19 Columna: 23 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 19 Columna: 27 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 19 Columna: 36 <BR> Token "falso" -> IDENTIFICADOR [falso] Linea: 20 Columna: 0
Comentario reconocido: (*operadores relacionales*) <BR> Token "program" -> PAL_RES [38] Linea: 2 Columna: 0 <BR> Token "boolsYrelacionales" -> IDENTIFICADOR [boolsYrelacionales] Linea: 2 Columna: 8 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 2 Columna: 26 <BR> Token "var" -> PAL_RES [20] Linea: 4 Columna: 0 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 6 Columna: 0 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 6 Columna: 9 <BR> Token "boolean" -> PAL_RES [2] Linea: 6 Columna: 11 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 6 Columna: 18 <BR> Token "falso" -> IDENTIFICADOR [falso] Linea: 7 Columna: 0 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 7 Columna: 5 <BR> Token "boolean" -> PAL_RES [2] Linea: 7 Columna: 7 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 7 Columna: 14 <BR> Token "y" -> IDENTIFICADOR [y] Linea: 9 Columna: 0 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 9 Columna: 1 <BR> Token "integer" -> PAL_RES [0] Linea: 9 Columna: 3 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 9 Columna: 10 <BR> Token "x" -> IDENTIFICADOR [x] Linea: 10 Columna: 0 <BR> Token ":" -> SEPARADOR [DOSPUNTOS] Linea: 10 Columna: 1 <BR> Token "integer" -> PAL_RES [0] Linea: 10 Columna: 3 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 10 Columna: 10 <BR> Token "begin" -> PAL_RES [22] Linea: 16 Columna: 0 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 18 Columna: 0 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 18 Columna: 10 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 18 Columna: 13 <BR> Token "OR" -> PAL_RES [18] Linea: 18 Columna: 23 <BR> Token "falso" -> IDENTIFICADOR [falso] Linea: 18 Columna: 26 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 18 Columna: 31 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 19 Columna: 0 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 19 Columna: 10 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 19 Columna: 13 <BR> Token "AND" -> PAL_RES [17] Linea: 19 Columna: 23 <BR> Token "verdadero" -> IDENTIFICADOR [verdadero] Linea: 19 Columna: 27 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 19 Columna: 36 <BR> Token "falso" -> IDENTIFICADOR [falso] Linea: 20 Columna: 0
<BR> Token ")" -> CIERRAPAREN [] Linea: 30 Columna: 8 <BR> Token "then" -> PAL_RES [24] Linea: 30 Columna: 10 <BR> Token "x  -> IDENTIFICADOR [x] Linea: 30 Columna: 15 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 30 Columna: 16 <BR> Token "y" -> IDENTIFICADOR [y] Linea: 30 Columna: 19 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 30 Columna: 20 <BR> Token "if" -> PAL_RES [23] Linea: 32 Columna: 0 <BR> Token "(" -> ABREPAREN [] Linea: 32 Columna: 3 <BR> Token "x" -> IDENTIFICADOR [x] Linea: 32 Columna: 4 <BR> Token "=" -> OPER_RELACIONAL [IGUAL] Linea: 32 Columna: 5 <BR> Token "y" -> IDENTIFICADOR [y] Linea: 32 Columna: 6 <BR> Token ")" -> CIERRAPAREN [] Linea: 32 Columna: 7 <BR> Token "then" -> PAL_RES [24] Linea: 32 Columna: 9 <BR> Token "x" -> IDENTIFICADOR [x] Linea: 32 Columna: 14 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 32 Columna: 15 <BR> Token "y" -> IDENTIFICADOR [y] Linea: 32 Columna: 18 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 32 Columna: 19 <BR> Token "if" -> PAL_RES [23] Linea: 34 Columna: 0 <BR> Token "(" -> ABREPAREN [] Linea: 34 Columna: 3 <BR> Token "x" -> IDENTIFICADOR [x] Linea: 34 Columna: 4 <BR> Token "<" -> OPER_RELACIONAL [MENOR] Linea: 34 Columna: 5 <BR> Token ">" -> OPER_RELACIONAL [MAYOR] Linea: 34 Columna: 6 <BR> Token "y" -> IDENTIFICADOR [y] Linea: 34 Columna: 7 <BR> Token ")" -> CIERRAPAREN [] Linea: 34 Columna: 8 <BR> Token "then" -> PAL_RES [24] Linea: 34 Columna: 10 <BR> Token "x" -> IDENTIFICADOR [x] Linea: 34 Columna: 15 <BR> Token ":=" -> OPER_ASIGNACION [] Linea: 34 Columna: 16 <BR> Token "y" -> IDENTIFICADOR [y] Linea: 34 Columna: 19 <BR> Token ";" -> SEPARADOR [PUNTOYCOMA] Linea: 34 Columna: 20 <BR> Token "End" -> PAL_RES [12] Linea: 36 Columna: 0 <BR> Token "." -> SEPARADOR [PUNTO] Linea: 36 Columna: 3 <BR>
<BR>
<h3>Prueba de un archivo que no exista o que este corrupto</h3>

<p>Si nos equivocamos de nombre de fichero, o intentamos introducir uno que no exista, se nos dar&aacute; error de Entrada salida, y veremos esto en consola:</p>
<p><i>Linea: -1 Columna: -1. LEXICO ERROR DE IO</i></p>


<a id="psintactico" name="psintactico"></a>
<h3>Pruebas del analizador sintáctico</h3><br>

AQUI LOS CASOS DE PRUEBA DEL A. SINTACTICO.


</div>
<div id="sidebar">
<div id="sidebarcontents"> 
<ul id="menu">
<li><h2>Casos de Prueba</h2></li>
<li>
   <ul>
    	<li><a href="#plexico">Pruebas Analizador Léxico</a></li>
    	<li><a href="#psintactico">Pruebas Analizador Sintáctico</a></li>
   </ul>
</li>
</div>
  <div id="sidebarbottom"></div>
</div>
<div class="clear"></div>
</div>
<div id="footer">
Compilador de Pascal:: PLg 2007-2008</div>
<div id="credit"><a href="http://www.ramblingsoul.com">CSS Layout</a> by Rambling Soul</div></div>

</body>
</html>